#!/usr/bin/python
# -*- coding:utf-8 -*-
import rxrs
#新建角色

#继续角色
#删除角色
# #####################以下为定义实现功能的类  #####################
class jiaose:
    #以下为角色定义
    def __init__(self,na,xue,gj,jn):
          self.NAME = na    #角色
          self.XUE = xue #血
          self.GJ = gj    #攻
          self.JN = jn  #技能
    def jineng1(self):
         """注释：强射技能，每回合第一次攻击力增加%50"""
         self.GJ = self.GJ + (self.GJ * 0.5)
    def jineng2(self):
         """注释：格挡技能，每回合第一次受伤害-%50"""
         self.XUE = self.XUE - ( self.GJ / 2)

         #self.XUE = self.XUE - (obj.GJ / 2)
    def jineng3(self):
         """注释：治疗技能，每回合恢复总血量的%15"""
         self.GJ = self.GJ + (self.GJ * 0.5)
    def detail(self):
         """注释：当前对象的详细情况"""
         temp = "角色名:%s ; 血量:%s ; 攻击:%s ; 技能:%s"  % (self.NAME, self.XUE, self.GJ, self.JN)
         print temp

class diren():
    #以下为敌人角色定义
    def __init__(self,na,xue,gj):
        self.NAME = na #角色
        self.XUE = xue #血
        self.GJ = gj   #攻
    def boss(self):
        """注释：当前对象的详细情况"""
        self.XUE = self.XUE + 5
        self.GJ = self.GJ + 5
    def detail(self):
        """注释：当前对象的详细情况"""
        temp = "角色名:%s ; 血量:%s ; 攻击:%s"  % (self.NAME, self.XUE, self.GJ)
        print temp

'''
zhanshi.jineng1()#角色做了什么动作，这里表示强射技能
zhanshi.jineng1()#角色做了什么动作，这里表示格挡技能
zhanshi.detail()   #查看角色的所有信息
guai = diren('半兽人',110,10)
guai.detail()
boss = diren('大便兽BOSS',110,10)
boss.boss()
'''
#################################以下为角色开始战斗##############################
#不能用类，用类的话再调用创建角色战斗等类会出错
#jineng1表示强射技能，每回合第一次攻击力增加%50
#jineng2表示格挡技能，每回合第一次受伤害-%50
#jineng3表示治疗技能，每回合恢复总血量的%15
def zhanshizhandou():
    zhanshi = jiaose('战士',110,10,'格档')  #创建角色战士
    banshouren = diren('半兽人',110,10)  #创建敌人
    print '你选择了一个战士角色，角色的状态如下！'
    zhanshi.detail()    #打印角色所有状态
    print '''你想去哪儿打怪呀！~
        1.东离草原
        2.黑色大地
        3.冰火之山
        4.伊拉克
        '''
    x1 = raw_input('输入目地的序号==>')
    if x1 == '1':
        print '你来到了东离草原'
        while True:

            shuru = raw_input('是否继续战斗？:YES')
            if shuru == 'YES':
                print '你遇了一个怪_%s'%banshouren.NAME

                #zhanshi.XUE = (zhanshi.XUE - banshouren.GJ) #你受到半兽人攻击，血量减兽人的攻击
                zhanshi.jineng2()  #你使用了一次格档技能，伤害-%50
                print '半兽人砍了你一刀，你-了10滴血！好痛啊，然而因为战争每回合受伤害减半效果。所以你只去了5点儿血~~'
                zhanshi.detail()
                print '然而你回过神来，立马还击，此刻半兽人痛的嗷嗷叫！半兽人-10滴血~~'
                banshouren.XUE = (banshouren.XUE - zhanshi.GJ)
                banshouren.detail()
                if banshouren.XUE == 0:
                    print '怪死了~半兽人死亡后奖励角色属性!'
                    break   #退出这个函数
            else:
                print '你退出了战争，打印此刻你的角色属性！'
                zhanshi.detail()
                break


def shushizhandou():
    shushi = jiaose('术士',110,8,'治疗')    #创建角色术士
def sheshouzhandou():
    sheshou = jiaose('射手',90,12,'强射')   #创建角色射手


#zhanshizhandou()

##############################################################
##############################################################
#登陆使用装饰器来调用密码验证
def wrapper(func):
    def inner(): #封装调用装饰器的函数
        obj = rxrs.start()         #注意这里调用的是 rxrs模块start类里面的denglu函数
        check_user = obj.denglu()  #在装饰器内新增的功能    #注意这里调用的是 rxrs模块start类里面的denglu函数
        if check_user == "登录成功": #判断，登录函数的登录是否成功
            func()
        else:
            return check_user #如果登录失败返回登录函数所提示的信息
    return inner #返回调用装饰器的函数

################################################开始游戏啦！########################################################
@wrapper    #函数调用登陆接口的装饰器
def kaishiyouxi():
    print '''=====可选择的角色有=====
    zhanshi
    shushi
    sheshou
======================='''
    a = raw_input('输入你选择的角色:')
    if a == 'zhanshi':
        print '你选择了一个战士！'
        #zhanshi = jiaose('战士',110,10,'格档')  #创建角色战士
        zhanshizhandou()    #调用上面打怪函数
    elif a == 'shushi':
        print '你选择了一个术士！'
        #shushi = jiaose('术士',110,8,'治疗')    #创建角色术士
    elif a == 'sheshou':
        print '你选择了一个射手！'
        #sheshou = jiaose('射手',90,12,'强射')   #创建角色射手
    else:
        print '选择错误！'